123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- import clsx from "clsx";
- import { Viewport } from "next";
- import { NextIntlClientProvider } from "next-intl";
- import { getMessages } from "next-intl/server";
- import { Inter as FontSans } from "next/font/google";
- import { ReactNode } from "react";
- import "../globals.css";
- import PageTransitionEffect from "@/components/PageTransitionEffect";
- import { Providers } from "./providers";
- // 加载字体
- const fontSans = FontSans({
- subsets: ["latin"],
- variable: "--font-sans",
- });
- export const viewport: Viewport = {
- themeColor: [
- { media: "(prefers-color-scheme: light)", color: "white" },
- { media: "(prefers-color-scheme: dark)", color: "black" },
- ],
- };
- export const metadata = {
- keywords: ["Next.js"],
- description: ["Next.js"],
- appleWebApp: {
- statusBarStyle: 'black',
- },
- formatDetection: {
- email: false,
- address: false,
- telephone: false,
- },
- other: {
- viewport: ['width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, viewport-fit=cover'],
- },
- }
- export default async function LocaleLayout({
- children,
- params: { locale },
- }: {
- children: ReactNode;
- params: { locale: string };
- }) {
- const messages = await getMessages();
- return (
- <html lang={locale} suppressHydrationWarning>
- {/* <Head>
- <meta http-equiv="X-UA-Compatible" content="IE=edge" />
- <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, viewport-fit=cover" />
- <meta name="keywords" content=""/>
- <meta name="description" content=""/>
- <meta name="apple-mobile-web-app-capable" content="yes" />
- <meta name="apple-mobile-web-app-status-bar-style" content="black" />
- <meta name="format-detection" content="telphone=no, email=no" />
- <meta http-equiv="Cache-control" content="no-cache, no-store, must-revalidate"/>
- <meta http-equiv="Pragma" content="no-cache"/>
- <meta http-equiv="Expires" content="0"/>
- </Head> */}
- <body className={clsx("font-sans", fontSans.variable)}>
- <Providers themeProps={{ defaultTheme: "dark", attribute: "class" }}>
- <NextIntlClientProvider messages={messages}>
- <PageTransitionEffect>{children}</PageTransitionEffect>
- </NextIntlClientProvider>
- </Providers>
- </body>
- </html>
- );
- }
|